package com.xingchi.tornado.security.service;

/**
 * 登录类型服务接口
 *
 * @author xiaoya
 * @date 2025/7/21 16:51
 */
public interface LoginSourceService {

    /**
     * 获取登录来源Name
     *
     * @return 登录类型来源名称
     */
    String getName();

    /**
     * 来源编码
     *
     * @return 来源编码
     */
    Integer getCode();

    default boolean supports(Integer code) {
        return this.getCode().equals(code);
    }

    static LoginSourceService build(String name, Integer code) {
        return new LoginSourceService() {
            @Override
            public String getName() {
                return name;
            }

            @Override
            public Integer getCode() {
                return code;
            }
        };
    }

}
